﻿using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using LiveTiss.Classes;
using LiveTiss.Schemas;

namespace LiveTiss.Guias
{
    public partial class GuiaConsultaReapresentacao : UserControl
    {
        #region Value

        public static readonly DependencyProperty ValueProperty = DependencyProperty.Register("Value",
            typeof(ct_guiaConsultaReapresentacao), typeof(GuiaConsultaReapresentacao), new PropertyMetadata(null));

        public ct_guiaConsultaReapresentacao Value
        {
            get { return (ct_guiaConsultaReapresentacao)GetValue(ValueProperty); }
            set { SetValue(ValueProperty, value); }
        }

        #endregion

        public GuiaConsultaReapresentacao()
        {
            this.DataContext = this;

            if (this.Value == null)
            {
                this.Value = new ct_guiaConsultaReapresentacao()
                {
                    beneficiario = new ct_beneficiario()
                    {
                        identificadorBeneficiario = new byte[] { },
                        nomeBeneficiario = string.Empty,
                        nomePlano = string.Empty,
                        numeroCarteira = string.Empty,
                        numeroCNS = string.Empty,
                        validadeCarteira = Util.EmptyDate,
                        validadeCarteiraSpecified = false
                    },
                    dadosAtendimento = new ct_atendimentoConsultaReapr()
                    {
                        dataAtendimento = Util.EmptyDate,
                        procedimento = new ct_atendimentoConsultaReaprProcedimento()
                        {
                            codigoProcedimento = string.Empty,
                            codigoTabela = st_tabela.Item05,
                            justificativa = string.Empty
                        },
                        tipoConsulta = st_tipoConsulta.Item1,
                        tipoSaida = st_tipoSaidaGuiaConsulta.Item1
                    },
                    dadosContratado = new ct_contratado()
                    {
                        enderecoContratado = new ct_endereco()
                        {
                            cep = string.Empty,
                            codigoIBGEMunicipio = string.Empty,
                            codigoUF = st_UF.AC,
                            complemento = string.Empty,
                            logradouro = string.Empty,
                            municipio = string.Empty,
                            numero = string.Empty,
                            tipoLogradouro = st_tipoLogradouro.Item001
                        },
                        identificacao = new ct_identificacaoPrestadorExecutante()
                        {
                            ItemValue = string.Empty,
                            ItemElementName = ItemChoiceType.CNPJ
                        },
                        nomeContratado = string.Empty,
                        numeroCNES = string.Empty
                    },
                    hipoteseDiagnostica = new ct_guiaConsultaReapresentacaoHipoteseDiagnostica()
                    {
                        CID = new ct_diagnostico()
                        {
                            codigoDiagnostico = string.Empty,
                            descricaoDiagnostico = string.Empty,
                            nomeTabela = st_tabelasDiagnostico.CID10
                        },
                        indicadorAcidente = st_indicadorAcidente.Item0,
                        indicadorAcidenteSpecified = false,
                        tempoReferidoEvolucaoDoenca = new ct_tempoEvolucaoDoenca()
                        {
                            unidadeTempo = st_unidadeTempo.A,
                            valor = string.Empty
                        },
                        tipoDoenca = st_tipoDoenca.A,
                        tipoDoencaSpecified = false,
                        diagnosticoSecundario = new List<ct_diagnostico>(
                        new ct_diagnostico[] {
                            new ct_diagnostico()
                            {
                                codigoDiagnostico = string.Empty,
                                descricaoDiagnostico = string.Empty,
                                nomeTabela = st_tabelasDiagnostico.CID10
                            }
                        })
                    },
                    identificacaoGuia = new ct_cabecalhoGuia()
                    {
                        numeroGuiaOperadora = string.Empty,
                        numeroGuiaPrestador = string.Empty,
                        dataEmissaoGuia = Util.EmptyDate,
                        identificacaoFontePagadora = new ct_cabecalhoGuiaIdentificacaoFontePagadora()
                        {
                            ItemValue = string.Empty,
                            ItemElementName = ItemChoiceType1.cnpjFontePagadora,
                        }
                    },
                    observacao = string.Empty,
                    profissionalExecutante = new ct_identificacaoProfissional()
                    {
                        cbos = st_CBOS.Item000000,
                        cbosSpecified = false,
                        conselhoProfissional = new ct_conselhoProfissional()
                        {
                            numeroConselho = string.Empty,
                            siglaConselho = st_conselhoProfissional.COREN,
                            ufConselho = st_UF.AC
                        },
                        nomeProfissional = string.Empty
                    }
                };
            }

            InitializeComponent();
        }
    }
}
